// pages/article_list/article_list.js
const app = getApp();

Page({
  /**
   * 页面的初始数据
   */
  data: {
    // 活动列表数据
    activities: [],
    // 当前页码
    pageNum: 1,
    // 每页数量
    pageSize: 10,
    // 是否还有更多数据
    hasMore: true,
    // 是否正在加载
    loading: false,
    // 总数
    total: 0,
    // 搜索关键词（活动名称）
    noticeName: null
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    // 重置数据并加载第一页
    this.setData({
      pageNum: 1,
      hasMore: true,
      activities: [],
      noticeName: options.noticeName ? decodeURIComponent(options.noticeName) : null
    });
    this.getActivities(1);
  },

  /**
   * 获取活动列表数据
   */
  getActivities(pageNum, append = false) {
    if (this.data.loading) return;
    
    this.setData({ loading: true });

    // 构建请求参数
    const params = {
      pageNum: pageNum,
      pageSize: this.data.pageSize
    };
    
    // 如果有搜索关键词，添加到请求参数中
    if (this.data.noticeName) {
      params.noticeName = this.data.noticeName;
    }

    wx.request({
      url: `${app.globalData.baseUrl}/notice/list`,
      method: 'GET',
      data: params,
      success: (res) => {
        this.setData({ loading: false });
        
        if (res.statusCode === 200 && res.data && res.data.code === 200) {
          const rows = res.data.rows || [];
          const total = res.data.total || 0;
          
          if (append) {
            // 追加数据
            this.setData({
              activities: [...this.data.activities, ...rows],
              pageNum: pageNum,
              hasMore: rows.length >= this.data.pageSize && this.data.activities.length < total,
              total: total
            });
          } else {
            // 替换数据
            this.setData({
              activities: rows,
              pageNum: pageNum,
              hasMore: rows.length >= this.data.pageSize && rows.length < total,
              total: total
            });
          }
        } else {
          wx.showToast({
            title: '加载失败',
            icon: 'none'
          });
        }
      },
      fail: (err) => {
        this.setData({ loading: false });
        console.error('加载活动列表失败:', err);
        wx.showToast({
          title: '加载失败',
          icon: 'none'
        });
      }
    });
  },

  /**
   * 活动卡片点击事件
   */
  onActivityTap(e) {
    const noticeId = e.currentTarget.dataset.noticeid;
    
    if (noticeId) {
      // 跳转到活动详情页
      wx.navigateTo({
        url: `/pages/serives_details/serives_details?noticeId=${noticeId}`
      });
    }
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {
    // 重置数据并加载第一页，保留搜索关键词
    this.setData({
      pageNum: 1,
      hasMore: true,
      activities: []
    });
    this.getActivities(1, false);
    
    // 停止下拉刷新
    setTimeout(() => {
      wx.stopPullDownRefresh();
    }, 500);
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {
    // 如果还有更多数据且不在加载中，加载下一页
    if (this.data.hasMore && !this.data.loading) {
      const nextPage = this.data.pageNum + 1;
      this.getActivities(nextPage, true);
    }
  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {
    return {
      title: '服务活动列表',
      path: '/pages/article_list/article_list'
    };
  }
})